﻿using System;
using System.Collections.Generic;
using GUITree;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

namespace Studio
{
	// Token: 0x020005D1 RID: 1489
	public abstract class TextEffect : UIBehaviour, IMeshModifier
	{
		// Token: 0x170004AB RID: 1195
		// (get) Token: 0x06002607 RID: 9735 RVA: 0x000DFD70 File Offset: 0x000DDF70
		public Graphic graphic
		{
			get
			{
				if (this.m_Graphic == null)
				{
					this.m_Graphic = base.GetComponent<Graphic>();
				}
				return this.m_Graphic;
			}
		}

		// Token: 0x06002608 RID: 9736 RVA: 0x000DFD98 File Offset: 0x000DDF98
		public void ModifyMesh(Mesh mesh)
		{
		}

		// Token: 0x06002609 RID: 9737 RVA: 0x000DFD9C File Offset: 0x000DDF9C
		public void ModifyMesh(VertexHelper verts)
		{
			List<UIVertex> list = ListPool<UIVertex>.Get();
			verts.GetUIVertexStream(list);
			this.Modify(ref list);
			verts.Clear();
			verts.AddUIVertexTriangleStream(list);
			ListPool<UIVertex>.Release(list);
		}

		// Token: 0x0600260A RID: 9738
		protected abstract void Modify(ref List<UIVertex> _stream);

		// Token: 0x0400263D RID: 9789
		private Graphic m_Graphic;
	}
}
